<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.3.1-20130512"/>
<title>3D Cell: CellMath Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">3D Cell
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.3.1-20130512 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pri-static-methods">Static Private Member Functions</a> &#124;
<a href="class_cell_math-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">CellMath Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>A Cell Math class.  
 <a href="class_cell_math.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="cellmath_8h_source.html">cellmath.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aa06b314db39bdf3c36f3a42020855e72"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_cell_math.html#aa06b314db39bdf3c36f3a42020855e72">CellMath</a> ()</td></tr>
<tr class="memdesc:aa06b314db39bdf3c36f3a42020855e72"><td class="mdescLeft">&#160;</td><td class="mdescRight">A constructor.  <a href="#aa06b314db39bdf3c36f3a42020855e72">More...</a><br/></td></tr>
<tr class="separator:aa06b314db39bdf3c36f3a42020855e72"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a2701b1d56419b4119a9b647706891897"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_cell_math.html#a2701b1d56419b4119a9b647706891897">lineIntersection</a> (const double a0, const double b0, const double a1, const double b1, const double a2, const double b2, const double a, const double b, const double c, const double d, double &amp;ix, double &amp;iy, double &amp;iz)</td></tr>
<tr class="memdesc:a2701b1d56419b4119a9b647706891897"><td class="mdescLeft">&#160;</td><td class="mdescRight">A line intersected with a plane.  <a href="#a2701b1d56419b4119a9b647706891897">More...</a><br/></td></tr>
<tr class="separator:a2701b1d56419b4119a9b647706891897"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a26f166868ca69c02a246a4b792256177"><td class="memItemLeft" align="right" valign="top">static double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_cell_math.html#a26f166868ca69c02a246a4b792256177">edgeIntersection</a> (const double a0, const double b0, const double a1, const double b1, const double a2, const double b2, const double a, const double b, const double c, const double d, double &amp;ix, double &amp;iy, double &amp;iz)</td></tr>
<tr class="memdesc:a26f166868ca69c02a246a4b792256177"><td class="mdescLeft">&#160;</td><td class="mdescRight">A edge intersected with a plane.  <a href="#a26f166868ca69c02a246a4b792256177">More...</a><br/></td></tr>
<tr class="separator:a26f166868ca69c02a246a4b792256177"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7adada0cb08e23044858bb7af41c6052"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_cell_math.html#a7adada0cb08e23044858bb7af41c6052">triangleIntersection</a> (const double a, const double b, const double c, const double d, const double vx0, const double vy0, const double vz0, const double vx1, const double vy1, const double vz1, const double vx2, const double vy2, const double vz2, double &amp;rvx0, double &amp;rvy0, double &amp;rvz0, double &amp;rvx1, double &amp;rvy1, double &amp;rvz1)</td></tr>
<tr class="separator:a7adada0cb08e23044858bb7af41c6052"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a230f3ac0ddea2ea8b337f55f0999ed86"><td class="memItemLeft" align="right" valign="top">static double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_cell_math.html#a230f3ac0ddea2ea8b337f55f0999ed86">lineIntersectionTriangle</a> (const <a class="el" href="class_vector3.html">Vector3</a> pos, const <a class="el" href="class_vector3.html">Vector3</a> orientation, const <a class="el" href="class_vector3.html">Vector3</a> v0, const <a class="el" href="class_vector3.html">Vector3</a> v1, const <a class="el" href="class_vector3.html">Vector3</a> v2)</td></tr>
<tr class="memdesc:a230f3ac0ddea2ea8b337f55f0999ed86"><td class="mdescLeft">&#160;</td><td class="mdescRight">A triangle intersected with a line.  <a href="#a230f3ac0ddea2ea8b337f55f0999ed86">More...</a><br/></td></tr>
<tr class="separator:a230f3ac0ddea2ea8b337f55f0999ed86"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adaf4a7ae548e4e4c8ad26c49f48d194f"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_cell_math.html#adaf4a7ae548e4e4c8ad26c49f48d194f">rotateMatX</a> (const double degree, double mat[4][4])</td></tr>
<tr class="memdesc:adaf4a7ae548e4e4c8ad26c49f48d194f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct the rotate matrix of the axis x.  <a href="#adaf4a7ae548e4e4c8ad26c49f48d194f">More...</a><br/></td></tr>
<tr class="separator:adaf4a7ae548e4e4c8ad26c49f48d194f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a2f5da286c4b95a6135c12cdc83e915"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_cell_math.html#a7a2f5da286c4b95a6135c12cdc83e915">rotateMatY</a> (const double degree, double mat[4][4])</td></tr>
<tr class="memdesc:a7a2f5da286c4b95a6135c12cdc83e915"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct the rotate matrix of the axis y.  <a href="#a7a2f5da286c4b95a6135c12cdc83e915">More...</a><br/></td></tr>
<tr class="separator:a7a2f5da286c4b95a6135c12cdc83e915"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3acb25b26beb1fe3e68da234f80fb3ee"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_cell_math.html#a3acb25b26beb1fe3e68da234f80fb3ee">rotateMatZ</a> (const double degree, double mat[4][4])</td></tr>
<tr class="memdesc:a3acb25b26beb1fe3e68da234f80fb3ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct the rotate matrix of the axis z.  <a href="#a3acb25b26beb1fe3e68da234f80fb3ee">More...</a><br/></td></tr>
<tr class="separator:a3acb25b26beb1fe3e68da234f80fb3ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83c66cc8c451590dbd68697bb8680537"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_cell_math.html#a83c66cc8c451590dbd68697bb8680537">translateMat</a> (const double x, const double y, const double z, double mat[4][4])</td></tr>
<tr class="memdesc:a83c66cc8c451590dbd68697bb8680537"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct the translate matrix.  <a href="#a83c66cc8c451590dbd68697bb8680537">More...</a><br/></td></tr>
<tr class="separator:a83c66cc8c451590dbd68697bb8680537"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab128b2c5cb78be65811c5eb1927b5e66"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_cell_math.html#ab128b2c5cb78be65811c5eb1927b5e66">scaleMat</a> (const double x, const double y, const double z, double mat[4][4])</td></tr>
<tr class="memdesc:ab128b2c5cb78be65811c5eb1927b5e66"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct the scale matrix.  <a href="#ab128b2c5cb78be65811c5eb1927b5e66">More...</a><br/></td></tr>
<tr class="separator:ab128b2c5cb78be65811c5eb1927b5e66"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d25706f57401a07f996e10888e70dbf"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_cell_math.html#a0d25706f57401a07f996e10888e70dbf">matMutiplyVector</a> (const double mat[4][4], const double v[4], double result[4])</td></tr>
<tr class="memdesc:a0d25706f57401a07f996e10888e70dbf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the result of a 4*4 matrix mutiplay a 4 vector.  <a href="#a0d25706f57401a07f996e10888e70dbf">More...</a><br/></td></tr>
<tr class="separator:a0d25706f57401a07f996e10888e70dbf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac14c173eea324853c3159a5366beae0d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_cell_math.html#ac14c173eea324853c3159a5366beae0d">matMutiply</a> (const double mat1[4][4], const double mat2[4][4], double result[4][4])</td></tr>
<tr class="memdesc:ac14c173eea324853c3159a5366beae0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the result of a 4*4 matrix mutiplay a 4*4 matrix.  <a href="#ac14c173eea324853c3159a5366beae0d">More...</a><br/></td></tr>
<tr class="separator:ac14c173eea324853c3159a5366beae0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d7667706f616d10c2a2fa58ecbb1292"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_cell_math.html#a7d7667706f616d10c2a2fa58ecbb1292">InverseMat</a> (const double mat[4][4], double result[4][4])</td></tr>
<tr class="memdesc:a7d7667706f616d10c2a2fa58ecbb1292"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the inverse matrix.  <a href="#a7d7667706f616d10c2a2fa58ecbb1292">More...</a><br/></td></tr>
<tr class="separator:a7d7667706f616d10c2a2fa58ecbb1292"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8326ddc72b4f5d82329628356efa7280"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_cell_math.html#a8326ddc72b4f5d82329628356efa7280">TranspoteMat</a> (const double mat[4][4], double result[4][4])</td></tr>
<tr class="memdesc:a8326ddc72b4f5d82329628356efa7280"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transpote a matrix.  <a href="#a8326ddc72b4f5d82329628356efa7280">More...</a><br/></td></tr>
<tr class="separator:a8326ddc72b4f5d82329628356efa7280"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a624b376b398d28e7064818fc2f6e6403"><td class="memItemLeft" align="right" valign="top">static double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_cell_math.html#a624b376b398d28e7064818fc2f6e6403">crossAngel</a> (const double ax, const double ay, const double bx, const double by)</td></tr>
<tr class="memdesc:a624b376b398d28e7064818fc2f6e6403"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the angel between two 2D vector.  <a href="#a624b376b398d28e7064818fc2f6e6403">More...</a><br/></td></tr>
<tr class="separator:a624b376b398d28e7064818fc2f6e6403"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a178f94fd0371a55898e1ac6c087c734c"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_cell_math.html#a178f94fd0371a55898e1ac6c087c734c">isVectorInFrustum</a> (const <a class="el" href="class_vector3.html">Vector3</a> p, const <a class="el" href="class_vector3.html">Vector3</a> point[], const <a class="el" href="class_vector3.html">Vector3</a> view, const <a class="el" href="class_vector3.html">Vector3</a> up)</td></tr>
<tr class="memdesc:a178f94fd0371a55898e1ac6c087c734c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine if a point in a frustum.  <a href="#a178f94fd0371a55898e1ac6c087c734c">More...</a><br/></td></tr>
<tr class="separator:a178f94fd0371a55898e1ac6c087c734c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-static-methods"></a>
Static Private Member Functions</h2></td></tr>
<tr class="memitem:a3f543533aaf47a0108862af0d9ec8c67"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_cell_math.html#a3f543533aaf47a0108862af0d9ec8c67">resetMat</a> (double mat[4][4])</td></tr>
<tr class="memdesc:a3f543533aaf47a0108862af0d9ec8c67"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set all the members of the matrix to be 0.  <a href="#a3f543533aaf47a0108862af0d9ec8c67">More...</a><br/></td></tr>
<tr class="separator:a3f543533aaf47a0108862af0d9ec8c67"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>A Cell Math class. </p>
<p>It is class of all math computations. All the functions are static, call these functions in other class by using CellMath::fun(). </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="aa06b314db39bdf3c36f3a42020855e72"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">CellMath::CellMath </td>
          <td>(</td>
          <td class="paramname">)</td><td></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>A constructor. </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a624b376b398d28e7064818fc2f6e6403"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double CellMath::crossAngel </td>
          <td>(</td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>ax</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>ay</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>bx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>by</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Compute the angel between two 2D vector. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ax</td><td>x coordinate value of the vector 0. </td></tr>
    <tr><td class="paramname">ay</td><td>y coordinate value of the vector 0. </td></tr>
    <tr><td class="paramname">bx</td><td>x coordinate value of the vector 1. </td></tr>
    <tr><td class="paramname">by</td><td>y coordinate value of the vector 1. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>return the angel. </dd></dl>

</div>
</div>
<a class="anchor" id="a26f166868ca69c02a246a4b792256177"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double CellMath::edgeIntersection </td>
          <td>(</td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>a0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>b0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>a1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>b1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>a2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>b2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>ix</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>iy</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>iz</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>A edge intersected with a plane. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">a0</td><td>x coordinate value of the start point. </td></tr>
    <tr><td class="paramname">b0</td><td>x coordinate value of the end point. </td></tr>
    <tr><td class="paramname">a1</td><td>y coordinate value of the start point. </td></tr>
    <tr><td class="paramname">b1</td><td>y coordinate value of the end point. </td></tr>
    <tr><td class="paramname">a1</td><td>z coordinate value of the start point. </td></tr>
    <tr><td class="paramname">b1</td><td>z coordinate value of the end point. </td></tr>
    <tr><td class="paramname">a</td><td>a value in the plane function ax+by+cz+d=0. </td></tr>
    <tr><td class="paramname">b</td><td>b value in the plane function ax+by+cz+d=0. </td></tr>
    <tr><td class="paramname">c</td><td>c value in the plane function ax+by+cz+d=0. </td></tr>
    <tr><td class="paramname">d</td><td>d value in the plane function ax+by+cz+d=0. </td></tr>
    <tr><td class="paramname">ix</td><td>return the x coordinate value of the intersection point. </td></tr>
    <tr><td class="paramname">iy</td><td>return the y coordinate value of the intersection point. </td></tr>
    <tr><td class="paramname">iz</td><td>return the z coordinate value of the intersection point. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>return the lenght between intersection point with start position. </dd></dl>

</div>
</div>
<a class="anchor" id="a7d7667706f616d10c2a2fa58ecbb1292"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void CellMath::InverseMat </td>
          <td>(</td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>mat</em>[4][4], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>result</em>[4][4]&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Compute the inverse matrix. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">mat</td><td>4*4 matrix. </td></tr>
    <tr><td class="paramname">result</td><td>4*4 matrix. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a178f94fd0371a55898e1ac6c087c734c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool CellMath::isVectorInFrustum </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_vector3.html">Vector3</a>&#160;</td>
          <td class="paramname"><em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_vector3.html">Vector3</a>&#160;</td>
          <td class="paramname"><em>point</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_vector3.html">Vector3</a>&#160;</td>
          <td class="paramname"><em>view</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_vector3.html">Vector3</a>&#160;</td>
          <td class="paramname"><em>up</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determine if a point in a frustum. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">p</td><td>the point position. </td></tr>
    <tr><td class="paramname">point</td><td>the 8 points of the frustum which define the frustum </td></tr>
    <tr><td class="paramname">view</td><td>the view direction of the camera. </td></tr>
    <tr><td class="paramname">up</td><td>the up direction of the camera. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>return true if the point in the frustum, or return false.. </dd></dl>

</div>
</div>
<a class="anchor" id="a2701b1d56419b4119a9b647706891897"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool CellMath::lineIntersection </td>
          <td>(</td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>a0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>b0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>a1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>b1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>a2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>b2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>ix</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>iy</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>iz</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>A line intersected with a plane. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">a0</td><td>x coordinate value of the start point. </td></tr>
    <tr><td class="paramname">b0</td><td>x coordinate value of the end point. </td></tr>
    <tr><td class="paramname">a1</td><td>y coordinate value of the start point. </td></tr>
    <tr><td class="paramname">b1</td><td>y coordinate value of the end point. </td></tr>
    <tr><td class="paramname">a1</td><td>z coordinate value of the start point. </td></tr>
    <tr><td class="paramname">b1</td><td>z coordinate value of the end point. </td></tr>
    <tr><td class="paramname">a</td><td>a value in the plane function ax+by+cz+d=0. </td></tr>
    <tr><td class="paramname">b</td><td>b value in the plane function ax+by+cz+d=0. </td></tr>
    <tr><td class="paramname">c</td><td>c value in the plane function ax+by+cz+d=0. </td></tr>
    <tr><td class="paramname">d</td><td>d value in the plane function ax+by+cz+d=0. </td></tr>
    <tr><td class="paramname">ix</td><td>return the x coordinate value of the intersection point. </td></tr>
    <tr><td class="paramname">iy</td><td>return the y coordinate value of the intersection point. </td></tr>
    <tr><td class="paramname">iz</td><td>return the z coordinate value of the intersection point. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>return true if the line has a intersection point with the plane, or return false. </dd></dl>

</div>
</div>
<a class="anchor" id="a230f3ac0ddea2ea8b337f55f0999ed86"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double CellMath::lineIntersectionTriangle </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_vector3.html">Vector3</a>&#160;</td>
          <td class="paramname"><em>pos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_vector3.html">Vector3</a>&#160;</td>
          <td class="paramname"><em>orientation</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_vector3.html">Vector3</a>&#160;</td>
          <td class="paramname"><em>v0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_vector3.html">Vector3</a>&#160;</td>
          <td class="paramname"><em>v1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_vector3.html">Vector3</a>&#160;</td>
          <td class="paramname"><em>v2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>A triangle intersected with a line. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pos</td><td>the start position of the line. </td></tr>
    <tr><td class="paramname">orientation</td><td>the orientation of the line. </td></tr>
    <tr><td class="paramname">v0</td><td>the first point of triangle. </td></tr>
    <tr><td class="paramname">v1</td><td>the second point of triangle. </td></tr>
    <tr><td class="paramname">v2</td><td>the third point of triangle. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>return length between the intersection point and the start position of the line, and return -1.0 if there is no intersection. </dd></dl>

</div>
</div>
<a class="anchor" id="ac14c173eea324853c3159a5366beae0d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void CellMath::matMutiply </td>
          <td>(</td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>mat1</em>[4][4], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>mat2</em>[4][4], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>result</em>[4][4]&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Compute the result of a 4*4 matrix mutiplay a 4*4 matrix. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">mat1</td><td>4*4 matrix. </td></tr>
    <tr><td class="paramname">mat2</td><td>4*4 matrix. </td></tr>
    <tr><td class="paramname">result</td><td>4*4 matrix. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a0d25706f57401a07f996e10888e70dbf"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void CellMath::matMutiplyVector </td>
          <td>(</td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>mat</em>[4][4], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>v</em>[4], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>result</em>[4]&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Compute the result of a 4*4 matrix mutiplay a 4 vector. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">mat</td><td>4*4 matrix. </td></tr>
    <tr><td class="paramname">v</td><td>4 vector. </td></tr>
    <tr><td class="paramname">result</td><td>4*4 matrix. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a3f543533aaf47a0108862af0d9ec8c67"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void CellMath::resetMat </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>mat</em>[4][4])</td><td></td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set all the members of the matrix to be 0. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">mat</td><td>4*4 matrix. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="adaf4a7ae548e4e4c8ad26c49f48d194f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void CellMath::rotateMatX </td>
          <td>(</td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>degree</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>mat</em>[4][4]&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Construct the rotate matrix of the axis x. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">degree</td><td>the rotate degree around the axis x. </td></tr>
    <tr><td class="paramname">mat</td><td>return the rotate matrix. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a7a2f5da286c4b95a6135c12cdc83e915"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void CellMath::rotateMatY </td>
          <td>(</td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>degree</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>mat</em>[4][4]&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Construct the rotate matrix of the axis y. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">degree</td><td>the rotate degree around the axis y. </td></tr>
    <tr><td class="paramname">mat</td><td>return the rotate matrix. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a3acb25b26beb1fe3e68da234f80fb3ee"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void CellMath::rotateMatZ </td>
          <td>(</td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>degree</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>mat</em>[4][4]&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Construct the rotate matrix of the axis z. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">degree</td><td>the rotate degree around the axis z. </td></tr>
    <tr><td class="paramname">mat</td><td>return the rotate matrix. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ab128b2c5cb78be65811c5eb1927b5e66"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void CellMath::scaleMat </td>
          <td>(</td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>z</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>mat</em>[4][4]&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Construct the scale matrix. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>scale value along axis x. </td></tr>
    <tr><td class="paramname">y</td><td>scale value along axis y. </td></tr>
    <tr><td class="paramname">z</td><td>scale value along axis z. </td></tr>
    <tr><td class="paramname">mat</td><td>return the scale matrix. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a83c66cc8c451590dbd68697bb8680537"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void CellMath::translateMat </td>
          <td>(</td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>z</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>mat</em>[4][4]&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Construct the translate matrix. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>translate value along axis x. </td></tr>
    <tr><td class="paramname">y</td><td>translate value along axis y. </td></tr>
    <tr><td class="paramname">z</td><td>translate value along axis z. </td></tr>
    <tr><td class="paramname">mat</td><td>return the translate matrix. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a8326ddc72b4f5d82329628356efa7280"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void CellMath::TranspoteMat </td>
          <td>(</td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>mat</em>[4][4], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>result</em>[4][4]&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Transpote a matrix. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">mat</td><td>4*4 matrix. </td></tr>
    <tr><td class="paramname">result</td><td>4*4 matrix. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a7adada0cb08e23044858bb7af41c6052"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool CellMath::triangleIntersection </td>
          <td>(</td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>vx0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>vy0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>vz0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>vx1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>vy1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>vz1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>vx2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>vy2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>vz2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>rvx0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>rvy0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>rvz0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>rvx1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>rvy1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>rvz1</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>A traingle intersected with a plane A edge intersected with a plane</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">a</td><td>a value in the plane function ax+by+cz+d=0. </td></tr>
    <tr><td class="paramname">b</td><td>b value in the plane function ax+by+cz+d=0. </td></tr>
    <tr><td class="paramname">c</td><td>c value in the plane function ax+by+cz+d=0. </td></tr>
    <tr><td class="paramname">d</td><td>d value in the plane function ax+by+cz+d=0. </td></tr>
    <tr><td class="paramname">vx0</td><td>x coordinate value of the point 0. </td></tr>
    <tr><td class="paramname">vy0</td><td>y coordinate value of the point 0. </td></tr>
    <tr><td class="paramname">vz0</td><td>z coordinate value of the point 0. </td></tr>
    <tr><td class="paramname">vx1</td><td>x coordinate value of the point 1. </td></tr>
    <tr><td class="paramname">vy1</td><td>y coordinate value of the point 1. </td></tr>
    <tr><td class="paramname">vz1</td><td>z coordinate value of the point 1. </td></tr>
    <tr><td class="paramname">vx2</td><td>x coordinate value of the point 2. </td></tr>
    <tr><td class="paramname">vy2</td><td>y coordinate value of the point 2. </td></tr>
    <tr><td class="paramname">vz2</td><td>z coordinate value of the point 2. </td></tr>
    <tr><td class="paramname">rvx0</td><td>return the x coordinate value of point 0 of the intersection line. </td></tr>
    <tr><td class="paramname">rvy0</td><td>return the y coordinate value of point 0 of the intersection line. </td></tr>
    <tr><td class="paramname">rvz0</td><td>return the z coordinate value of point 0 of the intersection line. </td></tr>
    <tr><td class="paramname">rvx1</td><td>return the x coordinate value of point 1 of the intersection line. </td></tr>
    <tr><td class="paramname">rvy1</td><td>return the y coordinate value of point 1 of the intersection line. </td></tr>
    <tr><td class="paramname">rvz1</td><td>return the z coordinate value of point 1 of the intersection line. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>return true if the triangle has a intersection line with the plane, or return false. </dd></dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="cellmath_8h_source.html">cellmath.h</a></li>
<li><a class="el" href="cellmath_8cpp.html">cellmath.cpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jul 9 2013 15:49:58 for 3D Cell by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.3.1-20130512
</small></address>
</body>
</html>
